package com.earthea.application.common.enums;

import lombok.Getter;
import org.apache.commons.lang3.StringUtils;

import java.util.Arrays;

/**
 * 业务操作类型
 */
@Getter
public enum BusinessType {
    /**
     * 其它
     */
    OTHER(0, "其它"),

    /**
     * 新增
     */
    INSERT(1, "新增"),

    /**
     * 修改
     */
    UPDATE(2, "修改"),

    /**
     * 删除
     */
    DELETE(3, "删除"),

    /**
     * 授权
     */
    GRANT(4, "授权"),

    /**
     * 导出
     */
    EXPORT(5, "导出"),

    /**
     * 导入
     */
    IMPORT(6, "导入"),

    /**
     * 强退
     */
    FORCE(7, "强退"),

    /**
     * 生成代码
     */
    GENCODE(8, "生成代码"),

    /**
     * 清空数据
     */
    CLEAN(9, "清空数据"),
    ;

    private final int value;

    private final String label;

    BusinessType(int value, String label) {
        this.value = value;
        this.label = label;
    }

    public static String getLabel(int value) {
        return Arrays.stream(values()).filter(type -> type.getValue() == value).findFirst().map(BusinessType::getLabel).orElse(BusinessType.OTHER.getLabel());
    }

    public static int getValue(String label) {
        return Arrays.stream(values()).filter(type -> StringUtils.equals(type.getLabel(), label)).findFirst().map(BusinessType::getValue).orElse(BusinessType.OTHER.getValue());
    }
}
